package com.lemei.cn.myokhttpbeen.cachemanger;

import android.text.TextUtils;

import com.lemei.cn.myokhttpbeen.utils.GsonUtil;

import java.util.List;

/**
 * Created by 赵航 on 2017/6/7.
 */

public class CacheManger {
    private static final CacheManger ourInstance = new CacheManger();
    private Object mListData;

    public static CacheManger getInstance() {
        return ourInstance;
    }

    private CacheManger() {
    }

    //跟距请求数据自动返回结果，自带缓存功能
    public <T> T getUrlDataBeen(String url, Class<T> clss) {

        //先去请求数据，没有网络再来本地拿

      String contect = HttpManger.getInstance().getData(url);

        //2.检测数据

        if (TextUtils.isEmpty(contect)){
            //3.去缓存拿取数据
            contect = CacheFileManger.getInstance().getCacheData(url);
            //3.1如果数据为空
            if (TextUtils.isEmpty(contect)){
                return null;
            }


        }else {
            //4.如果数据不为空,保存数据
            //6.保存数据
            CacheFileManger.getInstance().saveCachData(url,contect);
        }

        //5.解析数据，到这里一定有数据了

        return GsonUtil.parseJsonToBean(contect, clss);

    }

    //返回一个集合数据

    public <T> List<T> getListData(String url, Class<T> subjectItemBeenClass) {

        //先去请求数据，没有网络再来本地拿

        String contect = HttpManger.getInstance().getData(url);

        //2.检测数据

        if (TextUtils.isEmpty(contect)){
            //3.去缓存拿取数据
            contect = CacheFileManger.getInstance().getCacheData(url);
            //3.1如果数据为空
            if (TextUtils.isEmpty(contect)){
                return null;
            }


        }else {
            //4.如果数据不为空,保存数据
            //6.保存数据
            CacheFileManger.getInstance().saveCachData(url,contect);
        }

        //5.解析数据，到这里一定有数据了
        return GsonUtil.fromJsonArray(contect,subjectItemBeenClass);
    }
}
